home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 37 / IOPROG_37.ISO / SOFT / Multilizer.exe / disk1 / data1.cab / data1 / [Group9]VCL Source Standard / ivmltp.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-08-12  |  4.3 KB  |  166 lines

  1. unit IvMLTP;
  2.  
  3. {$I IVMULTI.INC}
  4.  
  5. {$A-}
  6.  
  7. interface
  8.  
  9. uses
  10.   Windows, SysUtils, Classes,
  11.   IvSocket;
  12.  
  13. const
  14.   DEFAULT_ADMIN_NAME_C = 'master';
  15.   DEFAULT_BODY_C = 'mds';
  16.  
  17.   SPACE_C = ' ';
  18.   SEPARATOR_C = Chr(127);
  19.   END_C = Chr(0);
  20.  
  21.   DEFAULT_PORT_C = 1099;
  22.   CURRENT_MLTP_VERSION_C = 10;
  23.   GLOSSARY_MLTP_VERSION_C = 11;
  24.   DEFAULT_TIMEOUT_C = 5000;
  25.   DEFAULT_CODE_PAGE_C = 1252;
  26.  
  27.   // Result codes used by MLTP messages
  28.  
  29.   MLTP_OK_C = 0;
  30.   MLTP_READ_ONLY_C = 1;
  31.   MLTP_ERROR_C = 2;
  32.   MLTP_NOT_FOUND_C = 3;
  33.   MLTP_INVALID_DATA_C = 4;
  34.   MLTP_ACCESS_ERROR_C = 5;
  35.   MLTP_TOO_MANY_CONNECTIONS_C = 6;
  36.   MLTP_NOT_ENOUGH_MEMORY_C = 7;
  37.   MLTP_LOCKED_C = 8;
  38.   MLTP_ALREADY_EXISTS_C = 9;
  39.   MLTP_EXPIRED_C = 10;
  40.   MLTP_INVALID_PARAMETER_C = 11;
  41.   MLTP_NOT_SUPPORTED_C = 12;
  42.   MLTP_INVALID_COMMAND_C = 13;
  43.   MLTP_INVALID_VERSION_C = 14;
  44.   MLTP_INVALID_LOCALE_CODING_C = 15;
  45.   MLTP_TIMEOUT_C = 16;
  46.  
  47.   // Message ids
  48.  
  49.   MLTP_LOGIN_C = 'LOGIN';         // Login group
  50.   MLTP_LOGOUT_C = 'LOGOUT';
  51.   MLTP_OPEN_C = 'OPEN';
  52.   MLTP_CLOSE_C = 'CLOSE';
  53.  
  54.   MLTP_TRANSLATE_C = 'TRANSLATE'; // Translate group
  55.   MLTP_CONTEXT_C = 'CONTEXT';     // Context translate group
  56.  
  57.   MLTP_GET_C = 'GET';             // Get group
  58.  
  59.   MLTP_SET_C = 'SET';             // Set group
  60.  
  61.   MLTP_ADD_C = 'ADD';             // Edit group
  62.   MLTP_RENAME_C = 'RENAME';
  63.   MLTP_DELETE_C = 'DELETE';
  64.   MLTP_EDIT_C = 'EDIT';
  65.   MLTP_UPDATE_C = 'UPDATE';
  66.   MLTP_POST_C = 'POST';
  67.   MLTP_CANCEL_C = 'CANCEL';
  68.  
  69.   // MLTP Items
  70.  
  71.   MLTP_VERSION_C = 'VERSION';
  72.  
  73.   MLTP_USER_C = 'USER';
  74.   MLTP_USERS_C = 'USERS';
  75.  
  76.   MLTP_CLIENT_C = 'CLIENT';
  77.   MLTP_CLIENTS_C = 'CLIENTS';
  78.  
  79.   MLTP_DICTIONARY_C = 'DICTIONARY';
  80.   MLTP_DICTIONARIES_C = 'DICTIONARIES';
  81.  
  82.   MLTP_LANGUAGE_C = 'LANGUAGE';
  83.   MLTP_LANGUAGECOUNT_C = 'LANGUAGECOUNT';
  84.   MLTP_LANGUAGEDATA_C = 'LANGUAGEDATA';
  85.  
  86.   MLTP_LOCALE_C = 'LOCALE';
  87.   MLTP_LOCALECOUNT_C = 'LOCALECOUNT';
  88.   MLTP_LOCALEDATA_C = 'LOCALEDATA';
  89.  
  90.   MLTP_TRANSLATIONCOUNT_C = 'TRANSLATIONCOUNT';
  91.   MLTP_TRANSLATION_C = 'TRANSLATION';
  92.   MLTP_TRANSLATIONBYINDEX_C = 'TRANSLATIONBYINDEX';
  93.   MLTP_TRANSLATIONBYNATIVE_C = 'TRANSLATIONBYNATIVE';
  94.  
  95.   MLTP_INFO_C = 'INFO';
  96.  
  97.   MLTP_LOG_C = 'LOG';
  98.  
  99.   // MDS Items
  100.  
  101.   MLTP_LICENSE_C = 'LICENSE';
  102.  
  103. type
  104.   TIvMessageType = (ivmtUnknown, ivmtWide, ivmtAnsi);
  105.   TIvUserType = (ivutNone, ivutUser, ivutAuthor, ivutAdmin);
  106.   TIvClientType = (ivctUnknown, ivctWIN32LM, ivctJavaLM, ivctDelphi, ivctCBuilder, ivctJava, ivctVB, ivctWFC);
  107.   TIvApplicationType = (ivatApplication, ivatApplet);
  108.   TIvPlatform = (ivpNT, ivpJava);
  109.  
  110.   TIvActionType = (ivatInfo, ivatWarning, ivatError, ivatFatalError);
  111.  
  112.   TIvMessageGroup = (ivmgLogin, ivmgTranslate, ivmgGet, ivmgSet, ivmgEdit);
  113.   TIvMessageGroups = set of TIvMessageGroup;
  114.  
  115.   EIvSocketError = class(Exception);
  116.  
  117.   EIvMLTPError = class(Exception)
  118.   public
  119.     ResultCode: Integer;
  120.  
  121.     constructor CreateMsg(resultCode: Integer; msg: String);
  122.   end;
  123.  
  124.   function IvIsDNSAddress(const value: String): Boolean;
  125.  
  126. implementation
  127.  
  128. function IvIsDNSAddress(const value: String): Boolean;
  129. begin
  130.   if value = '' then
  131.     Result := False
  132.   else
  133.     Result := IsCharAlpha(value[1]);
  134. end;
  135.  
  136. constructor EIvMLTPError.CreateMsg(resultCode: Integer; msg: String);
  137. begin
  138.   if msg = '' then
  139.     case resultCode of
  140.       MLTP_OK_C: msg := 'OK';
  141.       MLTP_READ_ONLY_C: msg := 'Read only access';
  142.       MLTP_ERROR_C: msg := 'Error';
  143.       MLTP_NOT_FOUND_C: msg := 'Not found';
  144.       MLTP_INVALID_DATA_C: msg := 'Invalid data';
  145.       MLTP_ACCESS_ERROR_C: msg := 'Access error';
  146.       MLTP_TOO_MANY_CONNECTIONS_C: msg := 'Too many connections';
  147.       MLTP_NOT_ENOUGH_MEMORY_C: msg := 'Not enough memory';
  148.       MLTP_LOCKED_C: msg := 'Item is locked';
  149.       MLTP_ALREADY_EXISTS_C: msg := 'Already exist';
  150.       MLTP_EXPIRED_C: msg := 'Evaluation period of MDS has been expired';
  151.       MLTP_INVALID_PARAMETER_C: msg := 'Invalid parameter';
  152.       MLTP_NOT_SUPPORTED_C: msg := 'Not supported';
  153.       MLTP_INVALID_COMMAND_C: msg := 'Invalid command';
  154.       MLTP_INVALID_VERSION_C: msg := 'Invalid version';
  155.       MLTP_INVALID_LOCALE_CODING_C: msg := 'Invalid locale coding';
  156.       MLTP_TIMEOUT_C: msg := 'Timeout';
  157.     else
  158.       msg := 'Unknown MLTP error';
  159.   end;
  160.  
  161.   inherited Create(msg);
  162.   Self.resultCode := resultCode;
  163. end;
  164.  
  165. end.
  166.